package org.jeecg.modules.flow.query;

import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Map;

/**
 * 提交任务所需的信息封装类（包含完成任务，转办任务）
 */
@Data
@Builder(toBuilder = true)
@ApiModel("提交任务请求信息封装类")
public class SubmitTaskQuery implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 任务ID
     */
    @NotEmpty(message = "任务id不能为空")
    private String taskId;

    /**
     * 实例Id
     */
    @NotEmpty(message = "实例id不能为空")
    private String instanceId;

    /**
     * 提价任务类型 1同意 2退回 3终结 4撤回
     */
    @NotNull(message = "提交类型不能为空")
    private Integer submitType;

    /**
     * 回退类型 1、回退到上一个节点 2、回退到上开始节点
     */
    @NotNull(message = "回退类型不能为空")
    private Integer backProcessType;

    /**
     * 如果是转办任务时取药传入代理人，之前的代理人就变成了委托人
     */
    private String assignee;

    /**
     * 提交意见，字符串
     */
    @NotEmpty(message = "意见不能为空")
    private String comment;

    /**
     * 流程实例绑定的业务KEY
     */
    @NotEmpty(message = "流程key不能为空")
    private String businessKey;

    /**
     * 完成任务提交时的变量
     */
    private Map<String, Object> variables;
}
